二层发送中,实现qdisc的主要函数是__dev_xmit_skb和net_tx_action,本篇将分析qdisc实现的原理,仅对框架进行分析。 其框架如下图所示 qdisc初始化 ...
二层发送中,实现qdisc的主要函数是__dev_xmit_skb和net_tx_action,本篇将分析qdisc实现的原理,仅对框架进行分析。 其框架如下图所示 qdisc初始化 ...
1、linux目前支持多种协议族,每个协议族用一个net_porto_family结构实例来表示,在初始化时,会调用sock_register()函数初始化注册到net_families[NPROTO ...
无论是从本地输出的数据还是转发的数据报文,经过路由后都要输出到网络设备,而输出到网络设备的接口就是dst_output(output)函数 路由的时候,dst_output函数设置为ip_outpu ...
不管是收到报文转发还是本机发送报文,最后都会调用dst_output 单播: /* * 对于单播数据包,目的路由缓存项中的输出接口是ip_output(). */ int ...
在ip_local_deliver中,如果检测到是分片包,则需要将报文进行重组。其所有的分片被重新组合后才能提交到上层协议,每一个被重新组合的数据包文用ipq结构实例来表示 ...
中断服务程序接收报文后都交由__netif_receive_skb处理:根据协议将报文向上传输; packet_type 结构为网络层输入接口;其支持多种协议,每个协议族都会实现一个接收报文的的实例 ...